53 research outputs found

    Strong Connectivity in Directed Graphs under Failures, with Application

    Full text link
    In this paper, we investigate some basic connectivity problems in directed graphs (digraphs). Let GG be a digraph with mm edges and nn vertices, and let G∖eG\setminus e be the digraph obtained after deleting edge ee from GG. As a first result, we show how to compute in O(m+n)O(m+n) worst-case time: (i)(i) The total number of strongly connected components in G∖eG\setminus e, for all edges ee in GG. (ii)(ii) The size of the largest and of the smallest strongly connected components in G∖eG\setminus e, for all edges ee in GG. Let GG be strongly connected. We say that edge ee separates two vertices xx and yy, if xx and yy are no longer strongly connected in G∖eG\setminus e. As a second set of results, we show how to build in O(m+n)O(m+n) time O(n)O(n)-space data structures that can answer in optimal time the following basic connectivity queries on digraphs: (i)(i) Report in O(n)O(n) worst-case time all the strongly connected components of G∖eG\setminus e, for a query edge ee. (ii)(ii) Test whether an edge separates two query vertices in O(1)O(1) worst-case time. (iii)(iii) Report all edges that separate two query vertices in optimal worst-case time, i.e., in time O(k)O(k), where kk is the number of separating edges. (For k=0k=0, the time is O(1)O(1)). All of the above results extend to vertex failures. All our bounds are tight and are obtained with a common algorithmic framework, based on a novel compact representation of the decompositions induced by the 11-connectivity (i.e., 11-edge and 11-vertex) cuts in digraphs, which might be of independent interest. With the help of our data structures we can design efficient algorithms for several other connectivity problems on digraphs and we can also obtain in linear time a strongly connected spanning subgraph of GG with O(n)O(n) edges that maintains the 11-connectivity cuts of GG and the decompositions induced by those cuts.Comment: An extended abstract of this work appeared in the SODA 201

    Join-Reachability Problems in Directed Graphs

    Full text link
    For a given collection G of directed graphs we define the join-reachability graph of G, denoted by J(G), as the directed graph that, for any pair of vertices a and b, contains a path from a to b if and only if such a path exists in all graphs of G. Our goal is to compute an efficient representation of J(G). In particular, we consider two versions of this problem. In the explicit version we wish to construct the smallest join-reachability graph for G. In the implicit version we wish to build an efficient data structure (in terms of space and query time) such that we can report fast the set of vertices that reach a query vertex in all graphs of G. This problem is related to the well-studied reachability problem and is motivated by emerging applications of graph-structured databases and graph algorithms. We consider the construction of join-reachability structures for two graphs and develop techniques that can be applied to both the explicit and the implicit problem. First we present optimal and near-optimal structures for paths and trees. Then, based on these results, we provide efficient structures for planar graphs and general directed graphs

    Incremental 22-Edge-Connectivity in Directed Graphs

    Get PDF
    In this paper, we initiate the study of the dynamic maintenance of 22-edge-connectivity relationships in directed graphs. We present an algorithm that can update the 22-edge-connected blocks of a directed graph with nn vertices through a sequence of mm edge insertions in a total of O(mn)O(mn) time. After each insertion, we can answer the following queries in asymptotically optimal time: (i) Test in constant time if two query vertices vv and ww are 22-edge-connected. Moreover, if vv and ww are not 22-edge-connected, we can produce in constant time a "witness" of this property, by exhibiting an edge that is contained in all paths from vv to ww or in all paths from ww to vv. (ii) Report in O(n)O(n) time all the 22-edge-connected blocks of GG. To the best of our knowledge, this is the first dynamic algorithm for 22-connectivity problems on directed graphs, and it matches the best known bounds for simpler problems, such as incremental transitive closure.Comment: Full version of paper presented at ICALP 201

    Dominators in Directed Graphs: A Survey of Recent Results, Applications, and Open Problems

    Get PDF
    The computation of dominators is a central tool in program optimization and code generation, and it has applications in other diverse areas includingconstraint programming, circuit testing, and biology. In this paper we survey recent results, applications, and open problems related to the notion of dominators in directed graphs,including dominator verification and certification, computing independent spanning trees, and connectivity and path-determination problems in directed graphs

    Approximating the Smallest Spanning Subgraph for 2-Edge-Connectivity in Directed Graphs

    Full text link
    Let GG be a strongly connected directed graph. We consider the following three problems, where we wish to compute the smallest strongly connected spanning subgraph of GG that maintains respectively: the 22-edge-connected blocks of GG (\textsf{2EC-B}); the 22-edge-connected components of GG (\textsf{2EC-C}); both the 22-edge-connected blocks and the 22-edge-connected components of GG (\textsf{2EC-B-C}). All three problems are NP-hard, and thus we are interested in efficient approximation algorithms. For \textsf{2EC-C} we can obtain a 3/23/2-approximation by combining previously known results. For \textsf{2EC-B} and \textsf{2EC-B-C}, we present new 44-approximation algorithms that run in linear time. We also propose various heuristics to improve the size of the computed subgraphs in practice, and conduct a thorough experimental study to assess their merits in practical scenarios

    Linear-Time Algorithms for Computing Twinless Strong Articulation Points and Related Problems

    Get PDF
    A directed graph G = (V,E) is twinless strongly connected if it contains a strongly connected spanning subgraph without any pair of antiparallel (or twin) edges. The twinless strongly connected components (TSCCs) of a directed graph G are its maximal twinless strongly connected subgraphs. These concepts have several diverse applications, such as the design of telecommunication networks and the structural stability of buildings. A vertex v ? V is a twinless strong articulation point of G, if the deletion of v increases the number of TSCCs of G. Here, we present the first linear-time algorithm that finds all the twinless strong articulation points of a directed graph. We show that the computation of twinless strong articulation points reduces to the following problem in undirected graphs, which may be of independent interest: Given a 2-vertex-connected undirected graph H, find all vertices v for which there exists an edge e such that H?{v,e} is not connected. We develop a linear-time algorithm that not only finds all such vertices v, but also computes the number of edges e such that H?{v,e} is not connected. This also implies that for each twinless strong articulation point v which is not a strong articulation point in a strongly connected digraph G, we can compute the number of TSCCs in G?v
    • …
    corecore